/* 
 * 1、原始类型
 *    (1)、null类型
 *    (2)、undefined类型
 *    (3)、number类型
 *    (4)、boolean类型
 *    (5)、string类型
 *    (6)、bigint类型
 *    (7)、symbol类型
 * 2、原始值 
 *    (1)、null类型的值只有一个: null
 *    (2)、undefined类型的值只有一个: undefined
 *    (3)、number类型的值可以是:  整数 、浮点数 、无穷大 、 NaN
 *    (4)、boolean类型的值可以是: true 或 false
 *    (5)、string类型的值可以是: 使用 "" 引起来、使用 '' 引起来、使用 `` 引起来
 *    (6)、bigint类型的值必须是整数，其字面量末尾必须是以n为后缀
 *    (7)、symbol类型的值一定是经过Symbol函数处理后的
 */


// 仅声明变量 x 但未赋值，此时系统会赋予默认值
let x ;
console.log( x ); // undefined

// 为变量 x 显式赋值
x = undefined ; 
console.log( '值: ' , x , ' , 类型:', typeof x );

x = null ;
// 务必注意 typeof null 返回的是 object
console.log( '值: ' , x , ' , 类型:', typeof x );

x = -7 / 0 ; // -Infinity
console.log( '值: ' , x , ' , 类型:', typeof x );

x = '开发喵' / 2 ; // NaN ( Not a Number )
console.log( '值: ' , x , ' , 类型:', typeof x );

x = true ;
console.log( '值: ' , x , ' , 类型:', typeof x );

x = 'hellokaifamiao' ;
console.log( '值: ' , x , ' , 类型:', typeof x );

x = 123456n ;
console.log( '值: ' , x , ' , 类型:', typeof x );

x = Symbol( null );
console.log( '值: ' , x , ' , 类型:', typeof x );